<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="struts_tag.City"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index2.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	
  	<s:debug></s:debug><br>
  	<!-- s:form 会自动进行表单回显 -->
  	<!-- struts2 会自动从栈顶至低开始匹配对象, 并把匹配的属性值赋值给对应的标签的 value 中 -->
  	<!-- method 默认值为 post, action 属性内的 action 请求不加 .action 尾缀 -->
  	<!-- s:form 会生成 table 进行自动排版 -->
  	<!-- 当 theme 属性默认值为 xhtml, 当值为 simple 时, 表单不会进行自动排版, 或者在 struts.xml 中配置全局主题 -->
	<s:form action="formTagTest" theme="simple">
		<s:hidden name="userid"></s:hidden>
		<s:textfield name="username" label="Username"></s:textfield>
		<!-- 默认情况下密码不回显, 如果想设置回显 showPassword 属性应改为 true -->
		<s:password name="password" label="Password" showPassword="true"></s:password>
		<s:textarea name="desc" label="Desc"></s:textarea>
		<!-- 如果复选框被选中了,它的值为 true,这时 HTTP 请求里会增加一个请求参数, 如果未被选中, 请求中就不会增加请求参数 -->
		<s:checkbox name="married" label="Married"></s:checkbox>
		<!-- 指定 Map (key:id value:显示的文字) 作为 单选框的 id 与值 -->
		<s:radio name="gender" list="#{'0':'Male','1':'Female'}" label="Gender"></s:radio>
		
		<%	// 要在进入页面之前把 list 存到 request 中, 在 Action 存到 request 动作发生在页面加载之后 
			ArrayList<City> list = new ArrayList<City>();
			list.add(new City(1,"BeiJing"));
			list.add(new City(2,"ShangHai"));
			list.add(new City(3,"GuangZhou"));
			list.add(new City(4,"ShenZhen"));
			request.setAttribute("list", list);
		%>
		<!-- 指定域对象中的 集合/数组/Map/枚举/iterator 作为多选框的 id 与值 -->
		<s:checkboxlist name="city" list="#request.list" listKey="cityId" listValue="cityName" label="City"></s:checkboxlist>
		<s:select list="{11,12,13,14,15,16,17,18,19,20}" headerKey="headerKey" headerValue="请选择" name="age" label="Age"></s:select>
		<s:submit label="Submit"></s:submit>
	</s:form>
  </body>
</html>
